package bo;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;

import dao.FornecedorDAO;
import exception.DataException;
import exception.DatabaseConnectException;
import exception.EmptyResultException;

public class Fornecedor {
	private Integer id;
	private String descricao;
	private String telefone;
	private String contato;
	private Date atualizacao;
	private FornecedorDAO fornecedorDAO;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {

		this.descricao = descricao;
	}

	public String getTelefone() {
		return telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	public String getContato() {
		return contato;
	}

	public void setContato(String contato) {
		this.contato = contato;
	}

	public Date getAtualizacao() {
		return atualizacao;
	}

	public void setAtualizacao(Date atualizacao) {
		this.atualizacao = atualizacao;
	}

	public void incluir(Fornecedor fornecedor) throws DatabaseConnectException,
			DataException {

		fornecedorDAO = new FornecedorDAO();

		fornecedorDAO.incluir(fornecedor);

	}

	public void excluir(Integer id) throws DatabaseConnectException,
			DataException {

		fornecedorDAO = new FornecedorDAO();

		fornecedorDAO.excluir(id);

	}

	public void alterar(Fornecedor fornecedor)
			throws DatabaseConnectException, DataException {

		fornecedorDAO = new FornecedorDAO();

		fornecedorDAO.alterar(fornecedor);

	}

	public ArrayList<Fornecedor> consultaTodosRegistros() throws DataException,
			EmptyResultException, SQLException, DatabaseConnectException {

		fornecedorDAO = new FornecedorDAO();

		return fornecedorDAO.consultaTodosRegistros();

	}

	public ArrayList<Fornecedor> consultaPorId(Integer id)
			throws DatabaseConnectException, DataException,
			EmptyResultException, SQLException {
		FornecedorDAO fornecedorDAO = new FornecedorDAO();
		if (id == 0) {
			return consultaTodosRegistros();
		} else {
			return fornecedorDAO.consultaPorId(id);
		}		
	}

	public ArrayList<Fornecedor> consultaPorDescricao(String descricao)
			throws DatabaseConnectException, DataException,
			EmptyResultException, SQLException {
		FornecedorDAO fornecedorDAO = new FornecedorDAO();

		return fornecedorDAO.consultaPorDescricao(descricao);
	}

	public ArrayList<Fornecedor> consultaPorContato(String contato)
			throws DatabaseConnectException, DataException, SQLException,
			EmptyResultException {
		FornecedorDAO fornecedorDAO = new FornecedorDAO();

		return fornecedorDAO.consultaPorContato(contato);
	}

}
